In this series, we will write an interpreter for a subset of C23. Source code: https://github.com/foonathan/clauf * Latest draft of the C standard: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf * lexy, the parsing library used: https://github.com/foonathan/lexy * lauf, the bytecode interpreter used: https://github.com/foonathan/lauf * dryad, library with useful data structures: https://github.com/foonathan/dryad Follow me on twitter: https://twitter.com/foonathan 00:00:00 - Intro 00:01:20 - __clauf_native decl specifier 00:09:46 - dlsym() 00:21:02 - Generating trampolines for native calls 00:28:56 - Supporting arguments using libffi 00:41:50 - Bugfixes 00:50:26 - Code cleanup 00:55:35 - Refactoring by adding clauf::code to hold data 01:09:18 - More code cleanup 01:13:10 - Supporting return values 01:22:40 - Fixing call_native to support tail calls 01:25:18 - Panicking on unknown function 01:27:11 - Outlook